# 递归概念：递归函数，如果一个函数在内部不调用其他的函数，而是自己本身的话，这个函数就是递归函数
# 递归必须有一个结束条件，否则递归无法结束会一直递归下去，直到到达最大递归深度报错
# 递归的优点：
# 递归使代码看起来更加整洁、优雅
# 可以用递归将复杂任务分解成更简单的子问题
# 使用递归比使用一些嵌套迭代更容易
# 递归的缺点：
# 递归逻辑很难调试，递归条件处理不好容易造成程序无法结束，直到达到最大递归错误。
# 递归占用大量内存，耗费计算机资源。

# 案例：求5！
def digui(n):
    if n==1:
        return 1
    return n*digui(n-1)
print(digui(5))